public class HanoiTest {

    public static int i = 1;


    public static void move(int n, String from, String to) //将编号为n的盘子由from移动到to
    {
        System.out.println(String.format("第%s步:将%s号盘子%s---->%s\n", i++, n, from, to));
    }

    public static void hanoi(int n, String from, String depend_no, String to)//将n个盘子由初始塔移动到目标塔(利用借用塔)
    {
        if (n == 1)
            move(1, from, to);//只有一个盘子是直接将初塔上的盘子移动到目的地
        else {
            hanoi(n - 1, from, to, depend_no);//先将初始塔的前n-1个盘子借助目的塔移动到借用塔上
            move(n, from, to);              //将剩下的一个盘子移动到目的塔上
            hanoi(n - 1, depend_no, from, to);//最后将借用塔上的n-1个盘子移动到目的塔上
        }
    }

    //汉诺塔
    public static void main(String[] args) {
        hanoi(2, "A", "B", "C");
    }
}
